# coding=utf-8

from flask import Flask, request
from flask_sqlalchemy import SQLAlchemy

app = Flask(__name__)

app.config['SQLALCHEMY_DATABASE_URI'] = 'mysql://root:123456@localhost:3306/test'
# 跟踪数据库的修改，消耗性能，@Deprecated
app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False

db = SQLAlchemy(app)


# 数据库的模型需要继承db.Model
class Role(db.Model):
    # 定义表名
    __tablename__ = 'T_ROLE'

    # 定义字段名
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), unique=True)

    # 一对多的关联关系, 和User模型添加关联关系，users为非持久化型的属性
    users = db.relationship('User', backref='role')


# 数据库的模型-用户
class User(db.Model):
    # 定义表名
    __tablename__ = 'T_USER'

    # 定义字段名
    id = db.Column(db.Integer, primary_key=True)
    name = db.Column(db.String(255), unique=True)
    # 外键的表示方式
    role_id = db.Column(db.Integer, db.ForeignKey('T_ROLE.id'))


@app.route('/index')
def index():
    return 'hello mysql'


if __name__ == '__main__':
    # 删除表
    db.drop_all()

    # 创建表, TODO 无法自动创建表
    db.create_all()

    # author = Author(name='张三')
    # db.session.add(author)
    # db.session.commit()

    app.run()
